package top.minuy.structure.linear.linked;

/**
 * 链表节点
 *
 * @author Minuy
 * @time 18:27
 * @date 2021/8/23
 * @param <E> 泛型支持
 */
public class Node<E> {
    // 储存的元素
    public E e;
    // 下一个节点的引用
    public Node<E> next;

    /**
     * 创建节点，传入元素和指向下一个节点
     *
     * @param e    节点存储的元素
     * @param next 下一个节点
     */
    public Node(E e, Node<E> next) {
        this.e = e;
        this.next = next;
    }

    /**
     * 创建节点，传入元素，下一个节点为空
     *
     * @param e 本节点存储的元素
     */
    public Node(E e) {
        this(e, null);
    }

    /**
     * 创建一个节点
     */
    public Node() {
        this(null, null);
    }

    @Override
    public String toString() {
        StringBuilder res = new StringBuilder();
        res.append("Node : e = ");
        if(e!=null){
            res.append(e.toString());
        }else {
            res.append("null");
        }
        res.append(", next = ");
        if(next!=null){
            res.append(next.toString());
        }else {
            res.append("null");
        }
        return res.toString();
    }
}
